//
//  FloatADModel.swift
//  iPhone
//
//  Created by Toj on 6/14/22.
//

import UIKit
import HandyJSON

public enum STFloatADPlacement: Int, HandyJSONEnum {
    // 展示的位置 @0 左下角 @1 中间 @2 右下角 @3 左侧 @4 右侧",
    case leftBottom   = 0
    case bottomCenter = 1
    case rightBottom  = 2
    case left         = 3
    case right        = 4
}

public enum STFloatADPType: Int, HandyJSONEnum {
    // 21  banenr  19  播放器 20 图标
    case banner     = 21
    case playerIcon = 19
    case icon       = 20
    
    var placeholder: String {
        switch self {
        case .banner:
            return "float_banner_placeholder"
        case .playerIcon:
            return "float_player_placeholder"
        case .icon:
            return "float_icon_placeholder"
        }
    }
}

public class FloatADModel: NSObject {
    public required override init() { }
    
    // 策略id
    var space_id = ""
    // 广告位id
    var position_id = ""
    // 广告的合作方式  1:自有
    var model = ""
    // 物料
    var materials = ""
    // 跳转链接
    var link = ""
    
    // 链接类型 0:外部URL,1:App页面
    ///var linkType = ""
    // 广告结束时间 （时间戳格式）
    var end_time = ""
    // 视频播放多少秒后展示时间（单位秒）
    var show_time_duration = 0
    // 是否跳过
    var skip = ""
    
    // 广告类型
    var ad_type_code: STFloatADPType = .icon
    // 频次设置:用户每次启动APP累计观看广告最多不超过多少次
    ///var session_limit = ""
    // 展示多久后关闭（单位秒）
    var closing_time = 0
    // 是否可以手动关闭
    var manual_closing = false
    // 展示的位置 @0 左下角 @1 中间 @2 右下角 @3 左侧 @4 右侧",
    var player_placement: STFloatADPlacement = .left
    // 距离底部百分比 @0 - 100 值
    var from_the_bottom = 0
    // 投放策略优先级
    //var priority = ""
    /**
     * 对应的页面
     * startimes://me/settings
     */
    var page_code: [String]?
    
    var isClosed = false
    
    var timeInterval: TimeInterval = 0
}

extension FloatADModel {
    var pitKey: String {
        if ad_type_code == .banner {
            return "banner"
        }
        
        return "\(player_placement.rawValue)" + "\(from_the_bottom)" + "\(ad_type_code.rawValue)"
    }
    
    var closingTime: Int {
        if ad_type_code == .playerIcon {
            return closing_time
        }
        return 0
    }
    
    var supportClose: Bool {
        if ad_type_code == .playerIcon {
            return manual_closing
        }
        
        return true
    }
    
    var placeholder: String {
        return ad_type_code.placeholder
    }
}
